<?php
// +----------------------------------------------------------------------
// | Copyright (c) 2017~2023 https://www.gxgyl.com All rights reserved.

// +----------------------------------------------------------------------
// | Author: Liuyu
// +----------------------------------------------------------------------
declare (strict_types = 1);

namespace app\store\controller\store;

use app\common\service\store\User as UserService;
use app\store\controller\Controller;
use app\store\model\store\Role as RoleModel;
use think\facade\Db;
/**
 * 商家用户角色控制器
 * Class StoreUser
 * @package app\store\controller
 */
class Role extends Controller {
	/**
	 * 角色列表
	 * @return array
	 * @throws \think\db\exception\DataNotFoundException
	 * @throws \think\db\exception\DbException
	 * @throws \think\db\exception\ModelNotFoundException
	 */
	public function list() {
		$model = new RoleModel;
		$list = $model->getList();
		return $this->renderSuccess(compact('list'));
	}

	public function detail() {

		$store_user = UserService::getLoginInfo();
		$store_user = $store_user['user'];
		$role = Db::name('store_user_role')->where('role_id', 'in', [10006, 10009])
			->where('store_user_id', $store_user['store_user_id'])->find();
		if ($role||$store_user['is_super']==1) {
			//管理员
			$pm_id = 0;
		} else {
			//单纯pm

			$pm_id =Db::name('user')->where('mobile',$store_user['user_name'])->value('user_id');
		}

		return $this->renderSuccess(compact('pm_id'));
	}

	/**
	 * 添加角色
	 * @return array
	 */
	public function add() {
		// 新增记录
		$model = new RoleModel;
		if ($model->add($this->postForm())) {
			return $this->renderSuccess('添加成功');
		}
		return $this->renderError($model->getError() ?: '添加失败');
	}

	/**
	 * 更新角色
	 * @param $roleId
	 * @return array|bool|string
	 * @throws \think\db\exception\DataNotFoundException
	 * @throws \think\db\exception\DbException
	 * @throws \think\db\exception\ModelNotFoundException
	 */
	public function edit(int $roleId) {
		// 角色详情
		$model = RoleModel::detail($roleId);
		// 更新记录
		if ($model->edit($this->postForm())) {
			return $this->renderSuccess('更新成功');
		}
		return $this->renderError($model->getError() ?: '更新失败');
	}

	/**
	 * 删除角色
	 * @param $roleId
	 * @return array|bool
	 * @throws \Exception
	 */
	public function delete(int $roleId) {
		// 角色详情
		$model = RoleModel::detail($roleId);
		if (!$model->remove()) {
			return $this->renderError($model->getError() ?: '删除失败');
		}
		return $this->renderSuccess('删除成功');
	}

}
